local socket = require("Libs.socket");

local g = require("g");

local co = require("SharedLibs.CoroLib");
local TimerMgr = require("SharedLibs.TimerMgr");
require("SharedLibs.Ops.WaitTime");

-- 处理事件队列
local function _tick(currentTime, deltaTime)
    TimerMgr.ManuallyTick(currentTime, deltaTime);
end

-- 主事件循环
local function eventLoop(main)
    local i = 0;
    local seconds = 1 / 60;

    main();

    while true do
        -- 处理所有事件
        _tick(os.clock(), seconds)
        -- 休息一段时间，避免占用过多CPU
        -- 这里可以根据需要调整休息时间
        socket.sleep(seconds);
        -- print(i);
        -- i = i+1;
    end
end

local function main()
    g.run(function ()
        print("Hello World!");
        local i = 1;
        while true do
            print("tick:"..i);
            i = i + 1;
            g.delay(1);
        end
    end)
    
    --myCo:Start();
end

-- 启动事件循环
eventLoop(main)